/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BeansGerenciaveis;

import DAO.ApoioDao;
import DAO.Conexao;
import bean.Apoio;
import java.io.Serializable;
import java.sql.PreparedStatement;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

/**
 *
 * @author jorge
 */
@ManagedBean
@SessionScoped
public class ApoioBean implements Serializable {

    /**
     * Creates a new instance of ApoioFormentoBean
     */
   

    public ApoioBean() {
        this.apoio = new Apoio();
        this.apoioDao = new ApoioDao();
        

    }
    
     public void novoApoio() {
        System.out.print("Novo apoio criado!");
        this.apoio = new Apoio();
        this.carregarApoios();

    }

    public ApoioDao getApoioDao() {
        return apoioDao;
    }

    public void setApoioDao(ApoioDao apoioFormentoDao) {
        this.apoioDao = apoioFormentoDao;
    }

    public Apoio getApoio() {
        return apoio;
    }

    public void setApoio(Apoio apoio) {
        this.apoio = apoio;
    }

    public void setApoios(DataModel<Apoio> apoios) {
        this.apoios = apoios;
    }

    public PreparedStatement getPs() {
        return ps;
    }

    public void setPs(PreparedStatement ps) {
        this.ps = ps;
    }

    public boolean isSucesso() {
        return sucesso;
    }

    public void setSucesso(boolean sucesso) {
        this.sucesso = sucesso;
    }

    public Conexao getConexao() {
        return conexao;
    }

    public void setConexao(Conexao conexao) {
        this.conexao = conexao;
    }

    public List<Apoio> getListaApoios() {
        listaApoios = this.listarApoio();
        return listaApoios;
    }

    public void setListaApoios(List<Apoio> listaApoio) {
        this.listaApoios = listaApoio;
    }

    public String cadastroApoio() {
        String resultado = "/cadastros/acaoErro";

        apoioDao = new ApoioDao();

        System.out.println("BeanGerenciavel - ApoioFormento: " + apoio.getNome());


        sucesso = apoioDao.cadastrarApoio(apoio);

        if (sucesso) {
            this.novoApoio();
            return "/cadastros/acaoSucesso";
        }
        
        this.novoApoio();

        return resultado;
    }

    public void selecionar() {
        apoio = apoios.getRowData();
    }

    public DataModel<Apoio> getApoios() {
        if(this.apoios == null){
            this.carregarApoios();
        }
        
        return apoios;
    }

    public List<Apoio> listarApoio() {
        System.out.println("ApoioBean - listarApoio :Fui executado!");
        if (this.listaApoios == null){
            this.carregarApoios();
        }
        return listaApoios;
    }

    public String removerApoio() {
        String resultado = "/cadastros/acaoErro";
        apoioDao = new ApoioDao();
        sucesso = apoioDao.removerApoio(apoio);

        if (sucesso) {
            return "/cadastros/acaoSucesso";
        }

        return resultado;
    }

    public String editarApoio() {
        String resultado = "/cadastros/acaoErro";

        apoioDao = new ApoioDao();
        System.out.println(apoio.getId());
        System.out.println(apoio.getNome());

        sucesso = apoioDao.alterarApoio(apoio);

        if (sucesso) {
            resultado = "/cadastros/acaoSucesso";
        }

        return resultado;
    }
    
    public void carregarApoios(){
        apoioDao = new ApoioDao();
        listaApoios = apoioDao.listarApoio();
        apoios = new ListDataModel<Apoio>(listaApoios);
    }
    
    private ApoioDao apoioDao;
    private Apoio apoio;
    private DataModel<Apoio> apoios;
    private PreparedStatement ps;
    private boolean sucesso = false;
    private Conexao conexao;
    private List<Apoio> listaApoios;
}
